package com.fmy.response.wrapper;

import java.util.List;

/**
 * @version 1.0
 * @Author MR.fmy
 * @Description 返回参数包装类
 * 具体用法解封下面DemoWrapper
 * @Date 2019/5/15 0015 10:23
 **/
public abstract class ResponseWrapper<T> {

    private T obj;
    private List<T> objs;

    public ResponseWrapper(T obj) {
        this.obj = obj;
    }

    public ResponseWrapper(List<T> objs) {
        this.objs = objs;
    }

    public void wra() {
        if (obj != null) {
            wrapper(obj);
        } else if (objs != null) {
            for (T item : objs) {
                wrapper(item);
            }
        }
    }

    /**
     * 具体的包装方法
     */
    protected abstract void wrapper(T obj);
}

//class DemoWrapper<T extends StringBuffer> extends ResponseWrapper {
//
//
//    public DemoWrapper(T obj) {
//        super(obj);
//    }
//
//    public DemoWrapper(List<T> objs) {
//        super(objs);
//    }
//
//    protected void wrapper(Object obj) {
//        ((StringBuffer) obj).append("-->demo测试");
//    }
//}
//
//class Text {
//
//    public static void main(String[] args) {
//        //单独的
//        StringBuffer obj = new StringBuffer("test response wrapper obj");
//        new DemoWrapper<StringBuffer>(obj).wra();
//        //list集合的
//        List<StringBuffer> objs = new ArrayList<StringBuffer>();
//        objs.add(new StringBuffer("test response wrapper objs"));
//        new DemoWrapper<StringBuffer>(objs).wra();
//        //包装后的
//        System.out.println(obj.toString());
//        for (StringBuffer item : objs) {
//            System.out.println(item.toString());
//        }
//    }
//}
